//
//  UIImage+Extension.h
//  OMTCoreKit
//
//  Created by 昭荣伊 on 2018/7/27.
//

#import <UIKit/UIKit.h>

@interface UIImage (Extension)

#pragma mark - 毛玻璃效果

/**
 生成毛玻璃图片

 @param alpha 白色,参数:透明度 0~1,  0为白,   1为深灰色
 @param radius 半径:默认30,推荐值 半径值越大越模糊 ,值越小越清楚
 @param colorSaturationFactor 色彩饱和度(浓度)因子:  0是黑白灰, 9是浓彩色, 1是原色  默认1.8
 “彩度”，英文是称Saturation，即饱和度。将无彩色的黑白灰定为0，最鲜艳定为9s，这样大致分成十阶段，让数值和人的感官直觉一致。
 @return 图片
 */
- (instancetype)omt_imageWithAlpha:(CGFloat)alpha radius:(CGFloat)radius colorSaturationFactor:(CGFloat)colorSaturationFactor;
// 封装好,供外界调用的,默认模糊化参数

/**
 生成毛玻璃图片

 @return 毛玻璃图片
 */
- (instancetype)omt_imageWithBlur;

/**
 生成毛玻璃图片

 @param radius 半径:默认30,推荐值 半径值越大越模糊 ,值越小越清楚
 @param tintColor 前景色
 @param saturationDeltaFactor colorSaturationFactor 色彩饱和度(浓度)因子:  0是黑白灰, 9是浓彩色, 1是原色  默认1.8
 “彩度”，英文是称Saturation，即饱和度。将无彩色的黑白灰定为0，最鲜艳定为9s，这样大致分成十阶段，让数值和人的感官直觉一致。
 @param maskImage 遮罩图
 @return 毛玻璃图片
 */
- (instancetype)omt_imgBluredWithRadius:(CGFloat)radius tintColor:(UIColor *)tintColor saturationDeltaFactor:(CGFloat)saturationDeltaFactor maskImage:(UIImage *)maskImage;


/**
 去色

 @return 去色后的图片
 */
- (instancetype)omt_desaturate;

#pragma mark - 图片大小
/**
 缩放图片

 @param scale 缩放比
 @return 图片
 */
- (instancetype)omt_toScale:(CGFloat)scale;

/**
 * @brief 压缩图片到不小于某个尺寸
 * @param width 长不小于的尺寸大小
 * @param height 高不小于的尺寸大小
 */

/**
 缩放图片

 @param width 宽度
 @param height 高度
 @return 缩放后的图片
 */
- (instancetype)omt_compressImageWithWidth:(CGFloat)width height:(CGFloat)height;

/**
 缩放图片

 @param size 图片宽高
 @return 缩放后的图片
 */
- (instancetype)omt_compressImageWithSize:(CGSize)size;


#pragma mark - 截屏相关函数

/**
 截屏

 @param view 视图
 @return 图片
 */
+ (instancetype)omt_screenshot:(UIView *)view;

/**
 截指定视图指定区域

 @param view 视图
 @param rect 截屏区域
 @return 图片
 */
+ (instancetype)omt_screenshot:(UIView *)view rect:(CGRect)rect;

/**
 截指定区域

 @param rect 截屏区域
 @return 图片
 */
- (instancetype)omt_screenshotWithRect:(CGRect)rect;

#pragma mark - 根据颜色生成图片
/**
 根据颜色生成图片

 @param color 颜色
 @return 图片
 */
+ (instancetype)omt_imageWithColor:(UIColor *)color;

/**
 根据颜色生成图片

 @param color 颜色
 @param size 图片大小
 @return 图片
 */
+ (instancetype)omt_imageWithColor:(UIColor *)color size:(CGSize)size;


/**
 根据颜色生成渐变图片

 @param colors 颜色数组
 @param size 图片大小
 @return 图片
 */
+ (instancetype)omt_imageWithColors:(NSArray *)colors size:(CGSize)size;

/**
 *  旋转图片
 *
 *  @return 旋转后的图片
 */
- (instancetype)omt_rotateToOrientationUp;

/**
 在图片中间加上文字
 
 @param text 文本
 @param font 字体
 @param color 颜色
 @return 图片
 */
- (instancetype)omt_watermarkCenterWithText:(NSString *)text font:(UIFont *)font color:(UIColor *)color;

@end
